package cn.rxyb.core.random;

/**
 * @author YJH
 * @version 1.0
 * @description
 * @date 2020/6/26 14:52
 */
public class IntegerRandom implements IRandom {


    private static IntegerRandom instance = null;

    private IntegerRandom() {
    }

    public static IntegerRandom getInstance() {
        if (null == instance) {
            instance = new IntegerRandom();
        }
        return instance;
    }


    /**
     * 获得指定范围内的随机数
     *
     * @param min 最小数（包含）
     * @param max 最大数（不包含）
     * @return 随机数
     */
    public int random(int min, int max) {
        return this.getRandom().nextInt(min, max);
    }

    /**
     * 获得随机数[0, 2^32)
     *
     * @return 随机数
     */
    public int random() {
        return this.getRandom().nextInt();
    }

    /**
     * 获得指定范围内的随机数 [0,limit)
     *
     * @param limit 限制随机数的范围，不包括这个数
     * @return 随机数
     */
    public int random(int limit) {
        return this.getRandom().nextInt(limit);
    }
}
